package com.platform.core.service;

import com.platform.comm.service.CommonBiz;
import com.platform.core.entity.SysMsgRecordEntity;
import com.platform.dto.SysMsgRecordVo;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Map;

/**
 * Description: LcodeMsgRecord 业务层接口
 *
 * @author Coder
 */
public interface SysMsgRecordBiz extends CommonBiz<SysMsgRecordEntity,String> {


    /**
     * 消息记录 批量新增
     * @param msgRecordVoList 记录列表
     */
    List<SysMsgRecordEntity> insertRecord(List<SysMsgRecordVo> msgRecordVoList);

    /**
     * 分页查询记录
     * @param map 记录列表
     * @param of 分页信息
     * @return 列表
     */
    Page<Map<String, Object>> search(Map<String, String> map, Pageable of);

    /**
     * 记录详情
     * @param map 参数
     * @return 记录
     */
    SysMsgRecordVo detail(Map<String, String> map);

    /**
     * 一键已读
     */
    void modifyReadStatus();

    /**
     * 删除
     * @param map id
     */
    void deleteById(Map<String, String> map);

    /**
     * 根据消息找出所有的记录
     *
     * @param msgId 消息id
     */
    List<SysMsgRecordVo> searchByMsgId(String msgId);

    /**
     * 分页查询记录
     *
     * @param map map
     * @return 列表
     */
    Page<SysMsgRecordVo> searchRecord(Map<String, String> map, Pageable of);


    /**
     * 获取附件列表
     * @param fileId ids
     * @return 列表
     */
    List<Map<String, String>> getFileId(String fileId);


    /**
     * 改变已读状态
     * @param id id
     */
    void editReadStatus(String id);
}
